Under the typical user interface on current mobile devices, it can be ambiguous and/or unintuitive to rotate and translate a 3D object by using finger swipes on a touch screen. As shown in FIG. 4, a user's intention when swiping a finger across the touch screen might be either to translate (move) a displayed object, or to rotate the object. Typically, this ambiguity is resolved by requiring the user to put the application displaying the object into either a translate mode or rotate mode prior to performing the finger swipe.
Such translate/rotate mode switching is often achieved using a mode control switch, which is also displayed on the touch screen and may reduce the screen area available for the display of content. Further, the user must determine that the application is in the desired mode before swiping the finger. If the application is not in the desired mode, the resulting undesired translate/rotate change to the displayed object must be undone, the application changed to the desired mode, and the finger swipe repeated.
In other user interfaces, translate and rotate modes of the application may be avoided by assigning single-finger swipes to translation and multi-finger input to rotation. One such interface is shown in FIGS. 5A-5C. As shown in FIG. 5A, if two fingers are placed on the touch screen at the same time and moved in a generally circular motion, the displayed object may be rotated about a so-called “z-axis” that extends into and out of the screen. If two fingers are placed on the touch screen at the same time and moved together in a horizontal direction, as shown in FIG. 5B, the displayed object may be rotated about a so-called “y-axis” that extends vertically in the plane of the screen. Finally, as shown in FIG. 5C, if two fingers are placed on the touch screen at the same time and moved together in a vertical direction, the displayed object may be rotated about a so-called “x-axis” that extends horizontally in the plane of the screen.
Such a mapping of motions to rotations may be intuitive for z-axis rotation, as the actions mimic the actions of the user's fingers grasping the displayed object and rotating it. However, the finger actions for rotation in the y-axis and x-axis are not intuitive, must be memorized by the user, and may be forgotten if the application is not used frequently.